﻿#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <string.h>

typedef int SLTDataType;
typedef struct SListNode
{
	SLTDataType val;
	struct SListNode* next;
}SL;

//打印链表（int）
void SLprint(SL* phead);

//尾插
void SLPushBack(SL** pphead, SLTDataType x);
//尾删
void SLPopBack(SL** pphead);
//头插
void SLPushFront(SL** pphead, SLTDataType x);
//头删
void SLTPopFront(SL** pphead);
//查找
SL* SLFind(SL* phead, SLTDataType x);
//在指定位置之前插入数据
void SLInsert(SL** pphead, SL* pop, SLTDataType x);
//删除pos节点
void SLErase(SL** pphead, SL* pop);
//在指定位置之后插入数据
void SLInsertAfter(SL* pop, SLTDataType x);

//删除pos之后的节点
void SLEraseAfter(SL* pop);

//销毁链表
void SListDesTroy(SL** pphead);